package desarrolloweb.proyecto.sis.dao;

import java.util.Collection;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import desarrolloweb.proyecto.sis.model.Usuario;



@Repository
@Transactional(readOnly = true)
public class UsuarioDaoImp implements UsuarioDAO{
	
	@PersistenceContext
	private EntityManager em;
			
	@Transactional
	public Usuario findById(Long id) {
	
		return em.find(Usuario.class, id);
	}

	
	@Transactional
	public Usuario save(Usuario u) {
		if (u.getId() == null) {
			em.persist(u);
			return u;
		} else {
			return em.merge(u);
		}
		
	}

	
	public Collection<Usuario> findAll() {
		return em.createQuery("select u from Usuario u", Usuario.class)
		.getResultList();
		
	}

	
	public Collection<Usuario> findAll(int pagina, int tamanioPagina) {
		TypedQuery<Usuario> col = em.createQuery("select u from Usuario u",
				Usuario.class);
		col.setFirstResult(pagina * tamanioPagina);
		col.setMaxResults(tamanioPagina);
		return col.getResultList();

	}



	

}
